A large number of modern computer applications are multifunctional software programs consisting of multiple modules having different functionality. Moreover, without halting the working of the application, services responsible for the working of certain functional modules can be turned on and off, thus reducing the load on the computer system.
The working capability of functional modules can be influenced by software updates of the application: along with the software updates, files and register keys may be downloaded which can influence the working of several functional modules. Even though software updates are supposed to eliminate errors in the working of an application or add new functional capabilities, it often happens that new errors will appear in the working of an application after a regular updating. Moreover, the new errors may affect not only the working of the application itself, but also the working of the computer system as a whole, and also have disastrous consequences for the data of the user. It is especially important to maintain the working capability of security applications, which not only afford protection against various computer threats but can also perform the encoding of the user's data.
Restoration tools are typically used to restore the working capability of an application or an operating system (OS), as well as eliminate errors in their operation. For example, the Windows OS uses a “System restore” component. This component enables a restoring of the working capability of the OS by rollback (restoration of the previous condition) of the system files, register branches, applications, and so forth. However, restoration points are not created for each update, and after the restoration of the system from the last restoration point many applications installed after its creation may not work correctly.
A method of testing of software updates with the possibility of rollback of updates in the event of unsatisfactory test results is also known. However, these methods do not always solve the problems of ensuring working capability of an application with installed updates and of the computer system without disconnecting the functionality causing the error in the working of the application or the OS, or rollback of the installed updates.